package com.h3c.ptability.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;

/**
 * Copyright (C), 2020-2020, h3c
 * FileName: PtDeptDTO
 *
 * @Author: l22886
 * @Date: 2022-03-14
 * Description: pt_dept dto实体
 * Version: 1.0
 */
@ApiModel(value="PtDept对象", description="")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PtDeptDTO implements Serializable {


    @ApiModelProperty(value = "部门id")
    private Integer deptId;

    @ApiModelProperty(value = "部门名称")
    private String deptName;

    @ApiModelProperty(value = "部门名称英文")
    private String deptNameEn;

    @ApiModelProperty(value = "一级部门简称")
    private String shortName;

    @ApiModelProperty(value = "部门等级")
    private Integer deptLevel;

    @ApiModelProperty(value = "上级部门id")
    private Integer parentId;

    @ApiModelProperty(value = "部门状态")
    private Integer deptStatus;

    @ApiModelProperty(value = "全链路部门名称")
    private String deptNameChain;

    @ApiModelProperty(value = "全链路部门编码")
    private String deptCodeChain;

    @ApiModelProperty(value = "部门主管工号")
    private String deptManagerId;

    @ApiModelProperty(value = "部门主管名称")
    private String deptManagerName;

    @ApiModelProperty(value = "部门分类ID")
    private Integer deptCategory;

    @ApiModelProperty(value = "干部部体系ID")
    private Integer deptSystem;

    @ApiModelProperty(value = "一级部门统计（实际所属部门体系）")
    private String belongDeptname;

    /**
     * 能否给当前部门进行授权
     */
    private Boolean hasAuthorize;

    private PtDeptDTO parent;

    /**
     *  传给前端，判断能否进行授权
     */
    private boolean canAuthorize;

    /**
     * 排序字段 + 升序， -降序
     * 比如 +updateTime 根据 修改时间升序排序，-updateTime 根据 修改时间降序排序
     */
    private String orderBy;

    private Boolean hasChildren;

    private List<PtDeptDTO> children;

    /**
     * 人员设置模式:1:覆盖原有人员；2：在原有人员上追加
     */
    private Integer personSetMode;

    /**
     * 部门设置模式：1：只设置当前部门；2：本部门及所有子部门
     */
    private Integer deptSetMode;

    /**
     * 设置的人员
     */
    private String users;

    /**
     * 应用租户
     */
    private String appId;
    /**
     * 有权限的用户id
     */
    private String userIds;
    /**
     * 有权限的用户名称
     */
    private String userNames;

    /**
     * 部门体系枚举转换值
     */
    private String deptSystemStr;

    /**
     * 服务体系的负责人id
     */
//    private String serviceManager;
    public String toString() {
        return "{" + "dept:" + this.deptId + "," +
                "deptName :" + this.deptName
                + "}";
    }
}
